How to learn to be a programmer who can